package com.diandi.messages.manager.impl;


import com.diandi.messages.bean.phone.MessageMsg;
import com.diandi.messages.enums.MessagesMsgEnums;
import com.diandi.messages.manager.phone.MessageMsgManager;
import com.diandi.messages.mapper.phone.MessageMsgMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
* @author mwz
* @create 2017-09-15 20:02
* @version V1.0.0
* @description description
*/
@Component
public class MessageMsgManagerImpl implements MessageMsgManager {


    @Autowired
    MessageMsgMapper messageMsgMapper;

    @Override
    public MessageMsg getMessageMsg(Map<String, String> paramMap) {
        return messageMsgMapper.getMessageMsg( paramMap );
    }



    @Transactional
    @Override
    public Integer saveMessageData( Map<String, String> paramMap ) {

        MessageMsg messageMsg = new MessageMsg();
        messageMsg.setMessageTrade( paramMap.get("messageTrade") );
        messageMsg.setMessageBatchTrade( paramMap.get("messageBatchTrade") );
        messageMsg.setBusinessId( paramMap.get( "businessId" ) );
        messageMsg.setPassCode( paramMap.get( "passCode" ) );
        messageMsg.setMerchantNo( paramMap.get( "merchantNo" ) );
        if (StringUtils.isNotBlank(paramMap.get("userId"))){
            messageMsg.setUserId( Long.parseLong( paramMap.get( "userId" ) ) );
        }
        messageMsg.setMsgTemplateCode( paramMap.get( "msgTemplateCode" ) );
        messageMsg.setPhoneId( paramMap.get( "phoneId" ) );
        messageMsg.setRequestMsg( paramMap.get( "requestMsg" ) );
        messageMsg.setReturnMsg( "" );
        messageMsg.setStatus( Integer.parseInt( MessagesMsgEnums.初始化.getNumber() ) );

        Integer rtnCount = messageMsgMapper.insertMessageMsg( messageMsg );
        System.out.println( rtnCount );
        messageMsg.setMessageTrade( paramMap.get("messageTrade") );
        messageMsg.setStatus( Integer.parseInt( MessagesMsgEnums.处理中.getNumber() ) );
        rtnCount += messageMsgMapper.updateMessageMsg( messageMsg );

        return rtnCount;
    }



    @Transactional
    @Override
    public Integer updateMessageData(Map<String, String> paramMap,String msgStatus ) {
        MessageMsg messageMsg = new MessageMsg();
        messageMsg.setMessageTrade( paramMap.get("messageTrade") );
        messageMsg.setReturnMsg( paramMap.get( "returnMsg" ) );
        messageMsg.setStatus( Integer.parseInt( msgStatus) );

        Integer rtnCount = messageMsgMapper.updateMessageMsg( messageMsg );

        return rtnCount;
    }

    @Override
    public void DataTranfer() {

    }
}
